import Vue from 'vue';
import App from './App.vue';
import router from './router/router';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import '@/assets/fonts/iconfont.css';  // 导入字体图标
import '@/assets/css/global.css';      //导入全局样式表
import axios from 'axios';
import TreeTable from 'vue-table-with-tree-grid';

// 配置请求的根路径
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'

axios.interceptors.request.use(config => {
  console.log(config);
  config.headers.Authorization = window.sessionStorage.getItem('token');
  // 在最后必须 return config
  return config
})
Vue.prototype.$http = axios     //把axios挂载到prototype中的http上，之后每一个组件中的this都能访问$http,从而去发起Ajax请求

Vue.config.productionTip = false

Vue.use(ElementUI);

Vue.component('tree-table',TreeTable)

// 注册全局过滤器,通过function的第一个形参拿到了对应时间
Vue.filter('dateFormat', function (originVal) {
  const dt = new Date(originVal)

  const y = dt.getFullYear()
  // ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度(下面的数字2)，会在头部或尾部补全。padStart()用于头部补全，padEnd()用于尾部补全。
  const m = (dt.getMonth() + 1 + '').padStart(2,'0')
  const d = (dt.getDate() + 1 + '').padStart(2,'0')

  const hh = (dt.getHours() + '').padStart(2,'0')
  const mm = (dt.getMinutes() + '').padStart(2,'0')
  const ss = (dt.getSeconds() + '').padStart(2,'0')

  // 拼接成完整日期字符串
  // return `yyyy-mm-dd hh: mm: ss`
  return `${y}-${m}-${d} ${hh}: ${mm}: ${ss}`
})
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
